Thực đơn
Visitor_pattern Ví dụSau đây là một ví dụ đơn giản minh họa áp dụng của mẫu thiết kế trên và cũng để hiểu rõ thêm về cài đặt của nó.
Sau đây là cài đặt của ví dụ trên bằng ngôn ngữ Java
interface Visitor { public void visit(Wheel wheel); public void visit(Engine engine); public void visit(Body body); public void visit(Car car);}//differing from above displayed UML: Additional use of an interface 'Element'interface Element { public void accept(Visitor visitor);}/* Concrete element */class Wheel implements Element { private String name; Wheel(String name) { this.name = name; } String getName() { return this.name; } public void accept(Visitor visitor) { visitor.visit(this); }}/* Concrete element */class Engine implements Element{ public void accept(Visitor visitor) { visitor.visit(this); }}/* Concrete element */class Body implements Element{ public void accept(Visitor visitor) { visitor.visit(this); }}/* Concrete element */class Car implements Element { private Engine engine = new Engine(); private Body body = new Body(); private Wheel[] wheels = { new Wheel("front left"), new Wheel("front right"), new Wheel("back left"), new Wheel("back right") }; public void accept(Visitor visitor) { visitor.visit(this); engine.accept(visitor); body.accept(visitor); for(int i=0; i<wheels.length; ++i) wheels[i].accept(visitor); }}/* Concrete visitor */class PrintVisitor implements Visitor { public void visit(Wheel wheel) { System.out.println("Visiting "+wheel.getName() +" wheel"); } public void visit(Engine engine) { System.out.println("Visiting engine"); } public void visit(Body body) { System.out.println("Visiting body"); } public void visit(Car car) { System.out.println("Visiting car"); }}public class VisitorDemo { public static void main(String[] args){ Car car = new Car(); Visitor visitor = new PrintVisitor(); car.accept(visitor); }}
Thực đơn
Visitor_pattern Ví dụLiên quan
Visitor pattern Visitación Badana Visitara Visitara charitopis Visitara brunneiplaga Visitara undilinea Vi sitter i Ventrilo och spelar DotA VisionOS Vision of Love VistaraTài liệu tham khảo
WikiPedia: Visitor_pattern